package tree.test110;

import listbyorder.utils.TreeNode;

/**
 * @author code_yc
 * @version 1.0
 * @date 2020/7/16 13:11
 */
public class Solution3 {

    // 简化版
    public boolean isBalanced(TreeNode root) {
        if (root == null) return true;
        // 分别计算左右子树的高度
        return Math.abs(getH(root.left) - getH(root.right)) < 2 && isBalanced(root.left) && isBalanced(root.right);
    }

    private int getH(TreeNode node) {
        if (node == null) return 0;
        return Math.max(getH(node.left), getH(node.right)) + 1;
    }
}
